Tailwind CSSã³ã³ããã¹ã¿ã€ã«ã¯ãšãªãæ¢æ±ããã¬ã¹ãã³ã·ããã¶ã€ã³ã®ããã®èŠçŽ ããŒã¹ã®ãã¬ã€ã¯ãã€ã³ãã«ã€ããŠåŠã³ãŸãããããã¥ãŒããŒãã§ã¯ãªãã³ã³ãããµã€ãºã«åºã¥ããŠã¬ã€ã¢ãŠãã調æŽããæ¹æ³ãç¿åŸããŸãã
Tailwind CSSã³ã³ããã¹ã¿ã€ã«ã¯ãšãªïŒã¬ã¹ãã³ã·ããã¶ã€ã³ã®ããã®èŠçŽ ããŒã¹ã®ãã¬ã€ã¯ãã€ã³ã
ã¬ã¹ãã³ã·ããã¶ã€ã³ã¯ããããŸã§ãã¥ãŒããŒããµã€ãºã«åºã¥ããŠã¹ã¿ã€ã«å€æŽãããªã¬ãŒããã¡ãã£ã¢ã¯ãšãªã«äŸåããŠããŸããããããããã®ã¢ãããŒãã¯ãç»é¢å šäœã§ã¯ãªããã³ã³ããŒãã³ãããã®ã³ã³ããèŠçŽ ã®ãµã€ãºã«åºã¥ããŠé©å¿ãããå¿ èŠãããå Žåã«å¶çŽãçããããšããããŸããTailwind CSSã®ã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã¯ã芪ã³ã³ããã®å¯žæ³ã«åºã¥ããŠã¹ã¿ã€ã«ãé©çšã§ãã匷åãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸããããã¯ãããŸããŸãªã¬ã€ã¢ãŠãã«ã·ãŒã ã¬ã¹ã«é©å¿ããåå©çšå¯èœã§æè»ãªã³ã³ããŒãã³ããäœæããã®ã«ç¹ã«åœ¹ç«ã¡ãŸãã
åŸæ¥ã®ã¡ãã£ã¢ã¯ãšãªã®éçãçè§£ãã
ã¡ãã£ã¢ã¯ãšãªã¯ãã¬ã¹ãã³ã·ããŠã§ããã¶ã€ã³ã®åºç€ã§ãããããã¯ãç»é¢å¹ ãé«ããããã€ã¹ã®åããè§£å床ãªã©ã®èŠå ã«åºã¥ããŠãŠã§ããµã€ãã®å€èгã調æŽããããšãéçºè ã«å¯èœã«ããŸããå€ãã®ã·ããªãªã§å¹æçã§ããäžæ¹ã§ãã³ã³ããŒãã³ãã®å¿çæ§ãå šäœã®ãã¥ãŒããŒãã«é¢ä¿ãªãããã®èŠªèŠçŽ ã®ãµã€ãºã«äŸåããå Žåãã¡ãã£ã¢ã¯ãšãªã¯äžååã§ãã
äŸãã°ãè£œåæ å ±ã衚瀺ããã«ãŒãã³ã³ããŒãã³ããèããŠã¿ãŸããããå šäœã®ãã¥ãŒããŒããµã€ãºã«é¢ä¿ãªãã倧ããªç»é¢ã§ã¯è£œåç»åãæ°Žå¹³ã«ãå°ããªã³ã³ããã§ã¯åçŽã«è¡šç€ºãããå ŽåããããŸããåŸæ¥ã®ã¡ãã£ã¢ã¯ãšãªã§ã¯ãç¹ã«ã«ãŒãã³ã³ããŒãã³ããç°ãªãã³ã³ãããµã€ãºãæã€ããŸããŸãªã³ã³ããã¹ãã§äœ¿çšãããå Žåã管çãå°é£ã«ãªããŸãã
Tailwind CSSã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã®ç޹ä»
ã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã¯ãã³ã³ããèŠçŽ ã®ãµã€ãºããã®ä»ã®ããããã£ã«åºã¥ããŠã¹ã¿ã€ã«ãé©çšããæ¹æ³ãæäŸããããšã§ããããã®å¶éã«å¯ŸåŠããŸããTailwind CSSã¯ãŸã ã³ã³ããã¯ãšãªãã³ã¢æ©èœãšããŠãã€ãã£ãã«ãµããŒãããŠããªãããããã®æ©èœãå®çŸããããã«ãã©ã°ã€ã³ã䜿çšããŸãã
èŠçŽ ããŒã¹ã®ãã¬ã€ã¯ãã€ã³ããšã¯ïŒ
èŠçŽ ããŒã¹ã®ãã¬ã€ã¯ãã€ã³ãã¯ããã¥ãŒããŒãã§ã¯ãªããã³ã³ããèŠçŽ ã®ãµã€ãºã«åºã¥ãããã¬ã€ã¯ãã€ã³ãã§ããããã«ãããã³ã³ããŒãã³ãã¯èŠªèŠçŽ ã®ã¬ã€ã¢ãŠãã®å€æŽã«å¿çããåã³ã³ãã³ãã®èŠãç®ãšæäœæ§ããã现ããå¶åŸ¡ããããã³ã³ããã¹ãã«åããããã¶ã€ã³ãæäŸã§ããŸãã
Tailwind CSSãã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã§èšå®ããïŒãã©ã°ã€ã³ã¢ãããŒãïŒ
Tailwind CSSã«ã¯ã³ã³ããã¯ãšãªã®çµã¿èŸŒã¿ãµããŒãããªãããã`tailwindcss-container-queries`ãšãããã©ã°ã€ã³ã䜿çšããŸãã
ã¹ããã1ïŒãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«
ãŸããnpmãŸãã¯yarnã䜿çšããŠãã©ã°ã€ã³ãã€ã³ã¹ããŒã«ããŸãã
npm install -D tailwindcss-container-queries
ãŸãã¯
yarn add -D tailwindcss-container-queries
ã¹ããã2ïŒTailwind CSSã®èšå®
次ã«ã`tailwind.config.js`ãã¡ã€ã«ã«ãã©ã°ã€ã³ã远å ããŸãã
module.exports = {
content: [
"./src/**/*.{js,ts,jsx,tsx}",
],
theme: {
extend: {},
},
plugins: [
require('@tailwindcss/forms'),
require('tailwindcss-container-queries'),
],
}
ã¹ããã3ïŒãã©ã°ã€ã³ã®äœ¿çš
ããã§ãTailwind CSSã¯ã©ã¹ã§ã³ã³ããã¯ãšãªããªã¢ã³ãã䜿çšã§ããŸãã
ã³ã³ããŒãã³ãã§ã®ã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã®äœ¿çš
ã³ã³ããã¯ãšãªã䜿çšããã«ã¯ããŸã`container`ãŠãŒãã£ãªãã£ã¯ã©ã¹ã䜿çšããŠã³ã³ããèŠçŽ ãå®çŸ©ããå¿ èŠããããŸãããã®åŸãã³ã³ããã¯ãšãªããªã¢ã³ãã䜿çšããŠãã³ã³ããã®ãµã€ãºã«åºã¥ããŠã¹ã¿ã€ã«ãé©çšã§ããŸãã
ã³ã³ããã®å®çŸ©
ã³ã³ãããšããŠäœ¿çšãããèŠçŽ ã«`container`ã¯ã©ã¹ã远å ããŸããç¹å®ã®ãã¬ã€ã¯ãã€ã³ããå®çŸ©ããããã«ç¹å®ã®ã³ã³ããã¿ã€ãïŒäŸïŒ`container-sm`ã`container-md`ã`container-lg`ã`container-xl`ã`container-2xl`ïŒã远å ãããã`container-query`ãã©ã°ã€ã³ã䜿çšããŠã³ã³ããã®ååãã«ã¹ã¿ãã€ãºãããããããšãã§ããŸãã
<div class="container ...">
<!-- Content here -->
</div>
ã³ã³ãããµã€ãºã«åºã¥ãã¹ã¿ã€ã«ã®é©çš
ã³ã³ããã®ãµã€ãºã«åºã¥ããŠæ¡ä»¶ä»ãã§ã¹ã¿ã€ã«ãé©çšããã«ã¯ãã³ã³ããã¯ãšãªãã¬ãã£ãã¯ã¹ã䜿çšããŸãã
äŸïŒ
<div class="container sm:text-sm md:text-base lg:text-lg xl:text-xl">
This text will change size based on the container's width.
</div>
ãã®äŸã§ã¯ãããã¹ããµã€ãºã¯æ¬¡ã®ããã«å€æŽãããŸãã
- sm: - ã³ã³ããã®å¹ ã`640px`以äžã®å Žåãããã¹ããµã€ãºã¯`text-sm`ã«ãªããŸãã
- md: - ã³ã³ããã®å¹ ã`768px`以äžã®å Žåãããã¹ããµã€ãºã¯`text-base`ã«ãªããŸãã
- lg: - ã³ã³ããã®å¹ ã`1024px`以äžã®å Žåãããã¹ããµã€ãºã¯`text-lg`ã«ãªããŸãã
- xl: - ã³ã³ããã®å¹ ã`1280px`以äžã®å Žåãããã¹ããµã€ãºã¯`text-xl`ã«ãªããŸãã
å®è·µçãªäŸãšãŠãŒã¹ã±ãŒã¹
ã³ã³ããã¯ãšãªãã©ã®ããã«äœ¿çšããŠãããæè»ã§åå©çšå¯èœãªã³ã³ããŒãã³ããäœæã§ããããããã€ãã®å®è·µçãªäŸãèŠãŠã¿ãŸãããã
äŸ1ïŒè£œåã«ãŒã
ç»åãšããã¹ãã衚瀺ãã補åã«ãŒããèããŠã¿ãŸãããã倧ããªã³ã³ããã§ã¯ããã¹ãã®é£ã«ç»åãæ°Žå¹³ã«è¡šç€ºããå°ããªã³ã³ããã§ã¯ããã¹ãã®äžã«ç»åãåçŽã«è¡šç€ºããããšããŸãã
<div class="container flex flex-col md:flex-row items-center border rounded-lg shadow-md overflow-hidden"
>
<img
class="w-full h-48 md:w-48 md:h-full object-cover"
src="product-image.jpg"
alt="Product Image"
/
>
<div class="p-4"
>
<h3 class="text-xl font-semibold mb-2"
>Product Title</h3>
<p class="text-gray-700"
>Product description goes here. This card adapts to its container size, displaying the image horizontally or vertically based on the container's width.</p>
<button class="mt-4 bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded focus:outline-none focus:shadow-outline"
>Add to Cart</button>
</div>
</div>
ãã®äŸã§ã¯ã`flex-col`ãš`md:flex-row`ã¯ã©ã¹ãã³ã³ãããµã€ãºã«åºã¥ããŠã¬ã€ã¢ãŠãã®æ¹åãå¶åŸ¡ããŸããå°ããªã³ã³ããã§ã¯ã«ãŒããã«ã©ã ã«ãªããäžãµã€ãºä»¥äžã®ã³ã³ããã§ã¯è¡ã«ãªããŸãã
äŸ2ïŒããã²ãŒã·ã§ã³ã¡ãã¥ãŒ
ããã²ãŒã·ã§ã³ã¡ãã¥ãŒã¯ãå©çšå¯èœãªã¹ããŒã¹ã«åºã¥ããŠã¬ã€ã¢ãŠããé©å¿ãããããšãã§ããŸãã倧ããªã³ã³ããã§ã¯ã¡ãã¥ãŒé ç®ãæ°Žå¹³ã«è¡šç€ºããå°ããªã³ã³ããã§ã¯åçŽã«ããŸãã¯ããããããŠã³ã¡ãã¥ãŒãšããŠè¡šç€ºã§ããŸãã
<div class="container"
>
<nav class="bg-gray-100 p-4 rounded-lg"
>
<ul class="flex md:flex-row flex-col gap-4"
>
<li><a href="#" class="hover:text-blue-500"
>Home</a></li>
<li><a href="#" class="hover:text-blue-500"
>About</a></li>
<li><a href="#" class="hover:text-blue-500"
>Services</a></li>
<li><a href="#" class="hover:text-blue-500"
>Contact</a></li>
</ul>
</nav>
</div>
ããã§ã¯ã`flex md:flex-row flex-col`ã¯ã©ã¹ãã¡ãã¥ãŒé ç®ã®ã¬ã€ã¢ãŠããæ±ºå®ããŸããå°ããªã³ã³ããã§ã¯é ç®ãåçŽã«ç©ã¿éããããäžãµã€ãºä»¥äžã®ã³ã³ããã§ã¯æ°Žå¹³ã«æŽåããŸãã
é«åºŠãªãã¯ããã¯ãšèæ ®äºé
åºæ¬çãªããšããããã«èžã¿èŸŒãã§ãã³ã³ããã¯ãšãªã广çã«äœ¿çšããããã®é«åºŠãªãã¯ããã¯ãšèæ ®äºé ãããã€ã玹ä»ããŸãã
ã³ã³ãããã¬ã€ã¯ãã€ã³ãã®ã«ã¹ã¿ãã€ãº
ç¹å®ã®ãã¶ã€ã³èŠä»¶ã«åãããŠã`tailwind.config.js`ãã¡ã€ã«ã§ã³ã³ãããã¬ã€ã¯ãã€ã³ããã«ã¹ã¿ãã€ãºã§ããŸãã
module.exports = {
theme: {
extend: {
container: {
screens: {
'2xs': '320px',
'xs': '480px',
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px',
'2xl': '1536px',
},
},
},
},
plugins: [
require('tailwindcss-container-queries'),
],
}
ããã«ãããç¬èªã®ã³ã³ãããµã€ãºãå®çŸ©ããã³ã³ããã¯ãšãªããªã¢ã³ãã§äœ¿çšã§ããããã«ãªããŸãã
ã³ã³ããã®ãã¹ã
ã³ã³ããããã¹ãããŠãããè€éãªã¬ã€ã¢ãŠããäœæã§ããŸãããã ããå€ãã®ã³ã³ããããã¹ããããããšããã©ãŒãã³ã¹ã®åé¡ãçºçããå¯èœæ§ããããããæ³šæãå¿ èŠã§ãã
ã³ã³ããã¯ãšãªãšã¡ãã£ã¢ã¯ãšãªã®çµã¿åãã
ã³ã³ããã¯ãšãªãšã¡ãã£ã¢ã¯ãšãªãçµã¿åãããããšã§ãããã«æè»ã§ã¬ã¹ãã³ã·ããªãã¶ã€ã³ãäœæã§ããŸããäŸãã°ãã³ã³ãããµã€ãºãšããã€ã¹ã®åãã«åºã¥ããŠç°ãªãã¹ã¿ã€ã«ãé©çšãããå ŽåããããŸãã
ã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã䜿çšããã¡ãªãã
- ã³ã³ããŒãã³ãã®åå©çšæ§ïŒåã€ã³ã¹ã¿ã³ã¹ã«ã«ã¹ã¿ã CSSãå¿ èŠãšããã«ãããŸããŸãªã³ã³ããã¹ãã«é©å¿ããã³ã³ããŒãã³ããäœæã§ããŸãã
- æè»æ§ã®åäžïŒã³ã³ããã®ãµã€ãºã«å¿çããã³ã³ããŒãã³ããèšèšããããæèã«å³ããé©å¿æ§ã®é«ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸããŸãã
- ä¿å®æ§ïŒã¡ãã£ã¢ã¯ãšãªã®ã¿ã«äŸåããã®ã§ã¯ãªããã³ã³ããã¯ãšãªã䜿çšããããšã§CSSã®è€éãã軜æžããã³ãŒãã®ä¿å®ãšæŽæ°ã容æã«ããŸãã
- ãã现ãããªå¶åŸ¡ïŒã³ã³ãããµã€ãºã«åºã¥ããŠã¹ã¿ã€ã«ãã¿ãŒã²ããã«ããããšã§ãã³ã³ããŒãã³ãã®å€èгããããã现ããå¶åŸ¡ã§ããŸãã
課é¡ãšèæ ®äºé
- ãã©ã°ã€ã³ãžã®äŸåïŒã³ã³ããã¯ãšãªæ©èœããã©ã°ã€ã³ã«äŸåããŠãããšããããšã¯ããããžã§ã¯ãããã©ã°ã€ã³ã®ã¡ã³ããã³ã¹ãšå°æ¥ã®Tailwind CSSã¢ããããŒããšã®äºææ§ã«äŸåããããšãæå³ããŸãã
- ãã©ãŠã¶ãµããŒãïŒçŸä»£ã®ãã©ãŠã¶ã¯äžè¬çã«ã³ã³ããã¯ãšãªããµããŒãããŠããŸãããå€ããã©ãŠã¶ã§ã¯å®å šãªäºææ§ã®ããã«ããªãã£ã«ãå¿ èŠã«ãªãå ŽåããããŸãã
- ããã©ãŒãã³ã¹ïŒç¹ã«è€éãªèšç®ã䌎ãã³ã³ããã¯ãšãªã®é床ãªäœ¿çšã¯ãããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸããæœåšçãªãªãŒããŒããããæå°éã«æããããã«CSSãæé©åããããšãéèŠã§ãã
- åŠç¿æ²ç·ïŒã³ã³ããã¯ãšãªã广çã«äœ¿çšããæ¹æ³ãçè§£ããã«ã¯ããã¥ãŒããŒãããŒã¹ã®ãã¶ã€ã³ããèŠçŽ ããŒã¹ã®ãã¶ã€ã³ãžã®æèã®è»¢æãå¿ èŠã§ãããç¿åŸã«ã¯æéããããå ŽåããããŸãã
ã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã䜿çšããããã®ãã¹ããã©ã¯ãã£ã¹
- ã¬ã€ã¢ãŠãã®èšç»ïŒã³ã³ããã¯ãšãªãå®è£ ããåã«ãã¬ã€ã¢ãŠããæ éã«èšç»ããèŠçŽ ããŒã¹ã®ã¬ã¹ãã³ã·ãæ§ããæãæ©æµãåããã³ã³ããŒãã³ããç¹å®ããŸãã
- å°èŠæš¡ããå§ããïŒããã€ãã®äž»èŠãªã³ã³ããŒãã³ãã§ã³ã³ããã¯ãšãªã®å®è£ ãéå§ãããã®ãã¯ããã¯ã«æ £ããã«ã€ããŠåŸã ã«ãã®äœ¿çšãæ¡å€§ããŸãã
- 培åºçãªãã¹ãïŒããŸããŸãªããã€ã¹ããã©ãŠã¶ã§ãã¶ã€ã³ããã¹ãããã³ã³ããã¯ãšãªãæåŸ ã©ããã«æ©èœããŠããããšã確èªããŸãã
- ããã©ãŒãã³ã¹ã®æé©åïŒCSSãå¯èœãªéãç°¡æœã«ä¿ã¡ãæœåšçãªããã©ãŒãã³ã¹ãžã®åœ±é¿ãæå°éã«æããããã«ãã³ã³ããã¯ãšãªå ã§è€éãªèšç®ãé¿ããŸãã
- ã³ãŒãã®ææžåïŒä»ã®éçºè ãã³ãŒããç°¡åã«çè§£ããä¿å®ã§ããããã«ãã³ã³ããã¯ãšãªã®å®è£ ãæç¢ºã«ææžåããŸãã
ã³ã³ããã¯ãšãªã®æªæ¥
ãã©ãŠã¶ã®ãµããŒããåäžããããå€ãã®éçºè ããã®åŒ·åãªãã¯ããã¯ãæ¡çšããã«ã€ããŠãã³ã³ããã¯ãšãªã®æªæ¥ã¯ææã«èŠããŸããã³ã³ããã¯ãšãªãããåºã䜿çšãããããã«ãªãã«ã€ããŠãããé«åºŠãªããŒã«ããã¹ããã©ã¯ãã£ã¹ãç»å Žããçã«ã¬ã¹ãã³ã·ãã§é©å¿æ§ã®é«ããŠã§ããã¶ã€ã³ã®äœæãããã«å®¹æã«ãªãããšãæåŸ ãããŸãã
çµè«
ãã©ã°ã€ã³ã«ãã£ãŠå®çŸãããTailwind CSSã³ã³ããã¹ã¿ã€ã«ã¯ãšãªã¯ãã³ã³ããèŠçŽ ã®ãµã€ãºã«åºã¥ããŠã¬ã¹ãã³ã·ããã¶ã€ã³ãäœæããããã®åŒ·åã§æè»ãªæ¹æ³ãæäŸããŸããã³ã³ããã¯ãšãªã䜿çšããããšã§ãå¹ åºãããã€ã¹ãç»é¢ãµã€ãºã§ããè¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸãããåå©çšå¯èœã§ä¿å®ã容æãªãé©å¿æ§ã®é«ãã³ã³ããŒãã³ããäœæã§ããŸããããã€ãã®èª²é¡ãèæ ®äºé ããããã®ã®ãã³ã³ããã¯ãšãªã䜿çšããã¡ãªããã¯ãã¡ãªãããã¯ããã«äžåããçŸä»£ã®ãŠã§ãéçºè ã®ããŒã«ãããã«ãããŠäžå¯æ¬ ãªããŒã«ãšãªã£ãŠããŸããèŠçŽ ããŒã¹ã®ãã¬ã€ã¯ãã€ã³ãã®åãæŽ»çšããã¬ã¹ãã³ã·ããã¶ã€ã³ã次ã®ã¬ãã«ãžãšåŒãäžããŸãããã